package com.scrm.server.wx.cp.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.scrm.api.wx.cp.dto.FissionPosterParamDTO;
import com.scrm.api.wx.cp.entity.WxFissionContact;
import com.scrm.api.wx.cp.entity.WxFissionTask;
import com.scrm.api.wx.cp.vo.WxFissionContactQueryVO;
import com.scrm.api.wx.cp.vo.WxFissionContactVO;

import java.util.List;

/**
 * 企微应用宝-渠道码 服务类
 * @author xxh
 * @since 2022-03-21
 */
public interface IWxFissionContactService extends IService<WxFissionContact> {

    /**
     * 校验是否存在
     * @author xxh
     * @date 2022-03-21
     * @param id 企微应用宝-渠道码id
     * @return com.scrm.api.wx.cp.entity.WxFissionContact
     */
    WxFissionContact checkExists(String id);

    /**
     * 生成/返回海报
     * @param dto
     */
    String getPoster(FissionPosterParamDTO dto);

    /**
     * （活动数据）查询活动数据列表
     * @param wxFissionContactQueryVO
     * @return
     */
    IPage<WxFissionContactVO> findCountList(WxFissionContactQueryVO wxFissionContactQueryVO);


    /**
     * 系统专属渠道码
     * @param wxFissionTask
     */
    void saveSystem(WxFissionTask wxFissionTask);

    /**
     * 更新渠道码
     * @param taskId
     * @param extStaffIds
     */
    void updateStaffIds(String extCorpId, String taskId, List<String> extStaffIds);

    /**
     * 获取任务的系统渠道活码
     * @param extCorpId
     * @param taskId
     * @return
     */
    WxFissionContact getSysContact(String extCorpId, String taskId);
}
